Oracle 中 rownum、row 您所在的位置:网站首页 Oracle rownum和order by谁先执行 Oracle 中 rownum、row

Oracle 中 rownum、row

2024-07-08 19:21| 来源: 网络整理| 查看: 265

Ø  简介

在之前还以为在 Oracle 中只能使用 rownum 这个伪列来实现分页,其实不然。在 Oracle 也与 MSSQL 一样,同样支持 row_number 函数,以及和 rank、dense_rank 这两个函数。下面就来讨论 rownum 与 row_number 函数的区别,以及另外两个函数的使用。

1.   rownum 的使用

2.   rownum 使用需谨慎

3.   row_number() 函数

4.   rank() 与 dense_rank() 函数

5.   over() 函数结合聚合函数的使用

6.   综合案例

 

1.   rownum 的使用

rownum 是 Oracle 在查询时对结果集输出的一个伪列,这个列并不是真实存在的,当我们进行每一个 SELECT 查询时,Oracle 会帮我们自动生成这个序列号(rownum),该序列号是顺序递增的,用于标识行号。通常可以借助 rownum 来实现分页,下面来看具体实现,比如我们需要取 emp 表中4到6行的记录:

1)   首先,我们来看一个奇怪的现象

SELECT * FROM emp WHERE rownum >= 4 AND rownum = 3不成立,所以该记录会被排除;然后再取第二条,此时任然 rownum = 1,因为只有成功满足一条记录,rownum 才会加1,所以不满足又被排除掉了。这样依次类推,最终都不满足条件,所以全部都被排除掉了。所以,以下语句始终查不出数据:

SELECT * FROM emp WHERE rownum > 1;

 

然后,在看另外一边(就是接下来用的这种判断方式),首先取第一条(满足),第二条也满足,直到(rownum = 7) = 4 AND rnum



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有